<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<!--suppress HtmlRequiredTitleElement -->
<head>
    <th:block th:include="include :: header('默认首页')"/>
    <style>
        /** 应用快捷块样式 */
        .console-app-group {
            padding: 16px;
            border-radius: 4px;
            text-align: center;
            background-color: #fff;
            cursor: pointer;
            display: block;
        }

        .console-app-group .console-app-icon {
            width: 32px;
            height: 32px;
            line-height: 32px;
            margin-bottom: 6px;
            display: inline-block;
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
            font-size: 32px;
            color: #69c0ff;
        }

        .console-app-group:hover {
            box-shadow: 0 0 15px rgba(0, 0, 0, .08);
        }

        .layui-timeline-title > span:hover {
            cursor: pointer;
            color: #1890ff;
            text-decoration: underline;
        }
    </style>
</head>
<body class="layui-layout-body theme-himio">
<!-- 正文开始 -->
<div class="layui-fluid ew-console-wrapper" style="margin-bottom: 30px;">
    <!-- 快捷方式 -->
    <div class="layui-row layui-col-space15"
         shiro:hasAnyPermissions="system:user:view,system:notice:view,system:config:view,monitor:loginInfo:view,monitor:online:view,monitor:server:view,system:dict:view,tool:gen:view">
        <div class="layui-col-sm6" style="padding-bottom: 0;"
             shiro:hasAnyPermissions="system:user:view,system:notice:view,system:config:view,monitor:loginInfo:view">
            <div class="layui-row layui-col-space15">
                <div class="layui-col-xs6 layui-col-sm3" shiro:hasPermission="system:user:view">
                    <div class="console-app-group" ew-href="/system/user" ew-title="用户管理">
                        <i class="console-app-icon layui-icon layui-icon-group"
                           style="font-size: 26px;padding-top: 3px;margin-right: 6px;"></i>
                        <div class="console-app-name">用户管理</div>
                    </div>
                </div>
                <div class="layui-col-xs6 layui-col-sm3" shiro:hasPermission="system:notice:view">
                    <div class="console-app-group" ew-href="/system/notice" ew-title="通知公告">
                        <i class="console-app-icon layui-icon layui-icon-email"
                           style="color: #5cdbd3;font-size: 36px;"></i>
                        <div class="console-app-name">通知公告</div>
                    </div>
                </div>
                <div class="layui-col-xs6 layui-col-sm3" shiro:hasPermission="system:config:view">
                    <div class="console-app-group" ew-href="/system/config" ew-title="参数配置">
                        <i class="console-app-icon layui-icon layui-icon-set" style="color: #95de64;"></i>
                        <div class="console-app-name">参数配置</div>
                    </div>
                </div>
                <div class="layui-col-xs6 layui-col-sm3" shiro:hasPermission="monitor:loginInfo:view">
                    <div class="console-app-group" ew-href="/monitor/loginInfo" ew-title="登录日志">
                        <i class="console-app-icon layui-icon layui-icon-menu-fill"
                           style="color: #b37feb;font-size: 30px;"></i>
                        <div class="console-app-name">登录日志</div>
                    </div>
                </div>
            </div>
        </div>
        <div class="layui-col-sm6" style="padding-bottom: 0;"
             shiro:hasAnyPermissions="monitor:online:view,monitor:server:view,system:dict:view,tool:gen:view">
            <div class="layui-row layui-col-space15">
                <div class="layui-col-xs6 layui-col-sm3" shiro:hasPermission="monitor:online:view">
                    <div class="console-app-group" ew-href="/monitor/online" ew-title="在线用户">
                        <i class="console-app-icon layui-icon layui-icon-user"
                           style="color: #ffd666;font-size: 34px;"></i>
                        <div class="console-app-name">在线用户</div>
                    </div>
                </div>
                <div class="layui-col-xs6 layui-col-sm3" shiro:hasPermission="monitor:server:view">
                    <div class="console-app-group" ew-href="/monitor/server" ew-title="服务监控">
                        <i class="console-app-icon layui-icon layui-icon-chart-screen" style="color: #ff9c6e;"></i>
                        <div class="console-app-name">服务监控</div>
                    </div>
                </div>
                <div class="layui-col-xs6 layui-col-sm3" shiro:hasPermission="system:dict:view">
                    <div class="console-app-group" ew-href="/system/dict" ew-title="字典管理">
                        <i class="console-app-icon layui-icon layui-icon-note"
                           style="color: #ff85c0;font-size: 28px;"></i>
                        <div class="console-app-name">字典管理</div>
                    </div>
                </div>
                <div class="layui-col-xs6 layui-col-sm3" shiro:hasPermission="tool:gen:view">
                    <div class="console-app-group" ew-href="/tool/gen" ew-title="代码生成">
                        <i class="console-app-icon layui-icon layui-icon-fonts-code" style="color: #ffc069;"></i>
                        <div class="console-app-name">代码生成</div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="layui-row layui-col-space15">
        <div class="layui-col-md8 layui-col-sm6">
            <div class="layui-row layui-col-space15">
                <div class="layui-col-md12">
                    <div class="layui-card">
                        <div class="layui-card-header">更新日志（点击展开）<small class="text-info">持续更新中...</small></div>
                        <div class="layui-card-body dynamic-card-body mini-bar">
                            <ul class="layui-timeline">
                                <li class="layui-timeline-item">
                                    <i class="layui-icon layui-timeline-axis">&#xe63f;</i>
                                    <div class="layui-timeline-content layui-text">
                                        <h3 class="layui-timeline-title"><span>v2022.04</span> <small class="text-muted">last updated on 2022/04</small></h3>
                                        <div style="display: block;">
                                            <ul>
                                                <li class="text-primary"><i class="layui-icon layui-icon-ok"></i> 初始化字典新增系统是否数字类型，区别于之前的Y/N类型</li>
                                                <li class="text-primary"><i class="layui-icon layui-icon-ok"></i> 新增自定义系统名字配置，可在系统参数配置中自行配置（管理员权限）</li>
                                                <li><i class="layui-icon layui-icon-fonts-code"></i> 调整参数配置中系统内置参数权限为管理员可见</li>
                                                <li class="text-success"><i class="layui-icon layui-icon-engine"></i> 修复上传文件夹不能初始化创建的BUG</li>
                                                <li class="text-success"><i class="layui-icon layui-icon-engine"></i> 修复通知公告修改/更新后不能正确展示的问题</li>
                                            </ul>
                                        </div>
                                    </div>
                                </li>
                                <li class="layui-timeline-item">
                                    <i class="layui-icon layui-timeline-axis">&#xe63f;</i>
                                    <div class="layui-timeline-content layui-text">
                                        <h3 class="layui-timeline-title"><span>v2022.03</span> <small class="text-muted">last updated on 2022/03</small></h3>
                                        <div style="display: none;">
                                            <ul>
                                                <li class="text-primary"><i class="layui-icon layui-icon-ok"></i> 新增登录页面背自定义功能，可在系统配置中修改</li>
                                                <li class="text-primary"><i class="layui-icon layui-icon-ok"></i> 文件管理中新增【新增文件夹功能】</li>
                                                <li class="text-primary"><i class="layui-icon layui-icon-ok"></i> 新增文件管理，可以动态管理上传文件和删除文件了</li>
                                                <li><i class="layui-icon layui-icon-fonts-code"></i> 升级 xm-select.js 至 v1.2.4</li>
                                                <li><i class="layui-icon layui-icon-fonts-code"></i> 调整了其他的一些代码细节改进优化</li>
                                                <li><i class="layui-icon layui-icon-fonts-code"></i> 优化在左侧栏菜单模式下，去掉首页菜单在左侧显示（避免看起来不协调的问题）</li>
                                                <li><i class="layui-icon layui-icon-fonts-code"></i> 优化字典/缓存操作代码逻辑</li>
                                                <li><i class="layui-icon layui-icon-fonts-code"></i> 优化密钥生成方式，由静态配置改为动态生成，防止密钥泄露</li>
                                                <li><i class="layui-icon layui-icon-fonts-code"></i> 升级 druid-spring-boot-starter 至最新版本 1.2.6</li>
                                                <li><i class="layui-icon layui-icon-fonts-code"></i> 升级 oshi 至最新新 5.8.0</li>
                                                <li><i class="layui-icon layui-icon-fonts-code"></i> 升级 hutool 至最新版本 5.7.5</li>
                                                <li><i class="layui-icon layui-icon-fonts-code"></i> 升级 layui 及其相关组件至最新版本 2.6.8</li>
                                                <li class="text-success"><i class="layui-icon layui-icon-engine"></i> 修复用户管理 - 添加/编辑用户部门下拉选择只能选择没有子节点的节点的问题</li>
                                                <li class="text-success"><i class="layui-icon layui-icon-engine"></i> 修复登录日志清空之后不能刷新页面的问题</li>
                                                <li class="text-success"><i class="layui-icon layui-icon-engine"></i> 修复 druid 最新版本数据监控页面刷新后空白问题</li>
                                                <li class="text-success"><i class="layui-icon layui-icon-engine"></i> 修复 loading 加载在失败情况下不会消失的 BUG</li>
                                                <li class="text-success"><i class="layui-icon layui-icon-engine"></i> 修复代码生成时候可能会重复插入权限菜单的问题</li>
                                                <li class="text-success"><i class="layui-icon layui-icon-engine"></i> 修复 entity.java.btl 少写了引导导致预发解析错误的 BUG</li>
                                            </ul>
                                        </div>
                                    </div>
                                </li>
                                <li class="layui-timeline-item">
                                    <i class="layui-icon layui-timeline-axis">&#xe63f;</i>
                                    <div class="layui-timeline-content layui-text">
                                        <h3 class="layui-timeline-title"><span>v2021.12</span> <small class="text-muted">last updated on 2021/12</small></h3>
                                        <div style="display: none;">
                                            <p style="margin: 0;"><b>前端更新：</b></p>
                                            <ul>
                                                <li>前端 UI・组件 更换为 layui，整体采用 layui 模板以及 layui 周边生态插件构建</li>
                                                <li>树形组件采用【xmSelect 下拉树・layui.tree・treeTable】组件分别代替【下拉树单/多选・树形列表・树形表格】的 ztree 和 bootstrapTable 插件，完美契合 layui 风格，风格统一化</li>
                                                <li><span class="text-primary"><b>通知采用【notice】插件替换 layer 组件的弹层通知（msg、alert等），更加美观，契合 layui</b></span></li>
                                                <li>日期选择组件直接全部采用【laydate】（包括单选和区间），同理上传组件也是全部采用 layui.upload，完美契合</li>
                                                <li>美化【登录・注册】界面，风格更加大气</li>
                                                <li>静态资源・前端页面・上传文件路径独立于 jar 部署，方便修改和打包</li>
                                                <li>前端富文本编辑器由 summernote 切换为 tinymce，功能更强大，风格更美观</li>
                                                <li><span class="text-primary"><b>配置定时任务时，新增 cron 表达式的 UI 界面配置（不需要懂 cron 语法也能快速配置）</b></span></li>
                                                <li><span class="text-primary"><b>重构服务【监控页面・ 缓存监控页面】，风格更加大气，契合 layui 整体风格</b></span></li>
                                                <li><span class="text-primary">新增菜单可下拉选择项目代码中所有 <code>@RequestMapping</code> 中的地址，也可手动输入，方便快速配置</span></li>
                                                <li>菜单字体图标可视化选择，项目会自动读取工程目录下的字体图标文件 fontawesome.min.css 文件解析出所有的图标以供选择</li>
                                                <li>代码生成整体全新适配 layui 优化，更加容易上手</li>
                                                <li>更多前端改进等你发现...</li>
                                            </ul>
                                            <p style="margin-bottom: 0;"><b>后端更新：</b></p>
                                            <ul>
                                                <li>首先就是根据 Alibaba Java Coding Guidelines 修改了下代码的格式和规范代码编写</li>
                                                <li>新增数据库表结构和数据自动初始化（只需新建一个空的数据库即可）</li>
                                                <li><span class="text-primary"><b>持久层框架新增 Mybatis Plus，方便快速写业务代码，避免繁杂的 mapper.xml 和 sql 编写，当然，对之前已有的 mapper 也进行了精简和优化</b></span></li>
                                                <li>新增了对 Spring JdbcTemplate 一定封装的工具方法，方便快速在 java 中快速执行一些 sql 逻辑（免去了 mybatis 那一套 xml 以及类编写，直接执行 sql），详情见 <code>JdbcDao.java</code></li>
                                                <li>精简了原先代码中的 mapper.xml 和 serviceImpl.java 的业务逻辑代码</li>
                                                <li>新增了好评如潮的 Hutool 工具类，替换了在项目中大量的 Utils，也相当于精简了一部分代码</li>
                                                <li>新增了 lombok 插件，精简了entity 的部分 getter 和 setter 代码</li>
                                                <li>新增了 XxxMetadata.java 类系列，方便在编写 MP 的 Wrapper 的时候快速使用列名，防止手误和重复编写魔法值（当然，你也可以使用 lambdaQuery 来完成，各有千秋）</li>
                                                <li>验证码更换为 easyCaptcha，更美观更快速</li>
                                                <li><span class="text-primary"><b>BaseEntity 的超类字段采用 Mybatis 的拦截器功能进行填充，详情见 <code>HimioMetaObjectHandler.java</code></b></span></li>
                                                <li>优化代码生成配置，新增 layui 表单动态配置生成</li>
                                                <li><span class="text-primary"><b>修复了多线程环境下 Shiro 和任务调度中 UnavailableSecurityManagerException 异常错误（当前线程上下文环境未绑定 SecurityManager）</b></span></li>
                                            </ul>
                                        </div>
                                    </div>
                                </li>
                                <li class="layui-timeline-item">
                                    <i class="layui-icon layui-timeline-axis">&#xe63f;</i>
                                    <div class="layui-timeline-content layui-text">
                                        <h3 class="layui-timeline-title"><span>项目概述</span>
                                        </h3>
                                        <div style="display: none">
                                            <blockquote class="layui-elem-quote">
                                                此项目是以 RuoYi-fast 为核心，进行了重构以及前端的组件和部分逻辑的改造
                                            </blockquote>
                                            <ul>
                                                <li>UI 进行大升级，整合了风格不统一的组件，整体使用 layui 及其生态周边的插件和组件，如：弹层、日期、树、上传等组件</li>
                                                <li>Bootstrap（也许）没有 layui 好看（当然要是有 antd 那种风格 UI 更好，layui 是后端程序员的完美选择，同时也是做毕设的完美搭档）</li>
                                                <li>静态资源和页面配置进行单独的配置路径，可以配置成任意路径，方便静态资源文件的管理和更新</li>
                                                <li>数据库自动初始化表结构和数据，无需手动去执行 SQL 脚本，只需新建一个数据库即可</li>
                                                <li>持久层框架更改使用 MybatisPlus，提升开发编码速度，更多通用方法继承，同时也封装了一套基于 SpringJdbcTemplate 的快速执行任意 SQL 的方法工具框架</li>
                                                <li>新增了一些功能模块，如自动前端代码生成（layui 表单部分），文件的自定义上传管理等</li>
                                                <li>对一些系统内置配置进行了优化，如菜单的选择、图标的选择，定时任务的配置，优化了监控资源界面的展示效果</li>
                                                <li>代码完美修正，完本基于遵循 Alibaba Java Coding Guidelines 规约，统计向 IDEA 的警告提示 0% 目标靠齐</li>
                                            </ul>
                                        </div>
                                    </div>
                                </li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="layui-col-md4 layui-col-sm6">
            <div class="layui-card">
                <div class="layui-card-header">版本信息</div>
                <div class="layui-card-body">
                    <table class="layui-table layui-text">
                        <colgroup>
                            <col width="90">
                            <col>
                        </colgroup>
                        <tbody>
                        <script type="text/html" ew-tpl>
                            <tr>
                                <td rowspan="3"><b>获取源码</b><br/><b>部署文档</b></td>
                                <td colspan="4">添加 QQ：765934806（备注：源码）</td>
                            </tr>
                            <tr>
                                <td colspan="4">添加微信号：wu-wen-bin（备注：源码）</td>
                            </tr>
                            <tr>
                                <td colspan="4">沟通交流群：先添加以上联系方式，后续建立之后会统一拉人</td>
                            </tr>
                            <tr>
                                <td rowspan="2"><b>内推服务</b></td>
                                <td colspan="3">目前作者有内推名额（阿里集团公司、阿里子公司、环路公司均可），p5/p6/p7均可，base 杭州或北京。
                                    主要是 <b>Java</b>、<b>前端</b>和<b>测试</b>。
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">需要请添加微信：wu-wen-bin（备注：内推）。</td>
                            </tr>
                            <tr>
                            <td><b>辅助服务</b></td>
                            <td colspan="4">一对一答疑、远程帮助讲解、毕设辅导，简历辅导/精修。如需要添加微信备注：<b>辅导</b>（有偿）</td>
                            </tr>
                            <tr>
                                <td>当前版本</td>
                                <td colspan="3"><b>HimioAdmin [[${version}]]</b></td>
                            </tr>
                            <tr>
                                <td rowspan="2">核心框架</td>
                                <td colspan="3">前端：<b>layui v{{layui.v}}</b></td>
                            </tr>
                            <tr>
                                <td colspan="3">后端：<b>SpringBoot 2.2.13.RELEASE</b></td>
                            </tr>
                        </script>
                        <tr>
                            <td rowspan="5">主要特色</td>
                            <td colspan="3">完全的响应式布局（支持手机／平板／PC）</td>
                        </tr>
                        <tr>
                            <td colspan="3">丰富的前端组件／强大的代码生成</td>
                        </tr>
                        <tr>
                            <td colspan="3">丰富的功能（监控／日志／多数据源等）</td>
                        </tr>
                        <tr>
                            <td colspan="3">完善的权限管理（菜单权限／数据权限）</td>
                        </tr>
                        <tr>
                            <td colspan="3">完善的拦截器（xss／sql／重复提交等）</td>
                        </tr>
                        <tr>
                            <td rowspan="10">主要架构</td>
                            <td>数据库</td>
                            <td colspan="2">MySQL 5.7.x</td>
                        </tr>
                        <tr>
                            <td>权限控制</td>
                            <td colspan="2">Apache Shiro 1.7.x</td>
                        </tr>
                        <tr>
                            <td>持久层</td>
                            <td colspan="2">Mybatis-Plus 3.4.x</td>
                        </tr>
                        <tr>
                            <td>视图模板</td>
                            <td colspan="2">Thymeleaf 3.x</td>
                        </tr>
                        <tr>
                            <td rowspan="6">前端组件</td>
                            <td colspan="2">下拉组件：xm-select.js 1.2.2</td>
                        </tr>
                        <tr>
                            <td colspan="2">树组件：treeTable.js 3.x</td>
                        </tr>
                        <tr>
                            <td colspan="2">字体图标：fontAwesome 4.7</td>
                        </tr>
                        <tr>
                            <td colspan="2"> 通知组件：notice.js</td>
                        </tr>
                        <tr>
                            <td colspan="2">富文本：tinymce.js 5.x</td>
                        </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- js部分 -->
<th:block th:include="include :: footer"/>
<script>
    layui.use(['layer', 'element', 'admin'], function () {
        var $ = layui.jquery;
        var layer = layui.layer;
        var device = layui.device();
        var admin = layui.admin;

        $(".layui-timeline-title").click(function () {
            $(this).nextAll().slideToggle();
        })

        admin.events.getAuth = function () {
            alert(111)
        }

    });
</script>
</body>
</html>
